package com.vhall.component.service.account;

import com.vhall.component.entity.account.vo.*;
import com.vhall.component.entity.export.dto.AdminExportCommonQueryCondition;

import java.util.List;

/**
 * 管理员信息管理
 *
 * @author shuli.lu
 */
public interface AdminInfoService {

    /**
     * 获取管理员信息详情
     *
     * @param reqVo
     * @return
     */
    AdminGetInfoRspVo get(AdminGetInfoReqVo reqVo);

    /**
     * 修改管理员的密码
     *
     * @param reqVO
     * @return
     */
    Boolean editPassword(AdmEditPasswordReqVO reqVO);

    /**
     * 删除管理员信息
     *
     * @param reqVO
     * @return
     */
    List<Integer> delete(AdmDeleteReqVO reqVO);

    /**
     * 修改管理员的账户状态
     *
     * @param reqVO
     * @return
     */
    Boolean editStatus(AdmEditStatusReqVO reqVO);

    /**
     * 编辑管理员信息
     *
     * @param vo
     * @return
     */
    Boolean edit(AdmEditReqVO vo);

    /**
     * 获取管理员列表
     *
     * @param reqVO
     * @return
     */
    AdminListRspVO list(AdminListReqVO reqVO);

    /**
     * 创建管理员信息
     *
     * @param reqVO
     * @return
     */
    AdminAddRspVO add(AdminAddReqVO reqVO);

    /**
     * 针对admin导出管理员计算总条数
     *
     * @param condition 查询条件
     * @return 总条数
     */
    Integer countAdminForAdminExport(AdminExportCommonQueryCondition condition);
}
